1. Field of the Invention
The invention relates to methods for efficiently routing a packet in a packet switching network and, more particularly, for providing. flexibility and significant complexity reduction in implementation of such networks; and packet switching networks incorporating such methods.
2. Description of the Background Art
A packet switch 100, sometimes called a “router”, is depicted by FIG. 1. Key components in it includes a number of “line interface cards” (or simply called “line cards”), a “switching fabric” 105, and a routing controller 101. A physical line card includes two logical parts, the “input module” 103-1 and the “output module” 104-1, which provide physical interface to packet generators and receivers. The switching fabric 105 provides the infrastructure for moving packets between input modules 103-1, 103-2, 103-3, 103-4 of line cards and output modules 104-1, 104-2, 104-3, 104-4 of line cards. The routing controller 101 uses various routing protocols to exchange information with other packet switches to build and maintain a routing table 102. The input module 103-1 of each line card includes or corresponds to a packet-forwarding table 106-1, which contains partial content of the routing table 102. Packets, in either fixed or variable lengths, enter the switch via the input module 103-1 of a line card. The input module identifies the routing information from the packet header, searches the packet-forwarding table for a match, and translates into a “switching header”. The switching header typically contains the in-band control signals for the switching fabric 105, QoS (quality of service) information, etc. More often than not in broadband switching, the incoming packet is segmented into “cells” of a fixed length. Assume that this is the case. Before a cell enters the switching fabric, the switching header prefixes the cell for guiding the cell through the switching fabric 105 toward an appropriate output. The cell then arrives at the output module of a line card. The output module reassembles cells back into the packet format.
FIG. 2 depicts the general topology of a “packet switching network” 201 which is an interconnection network of a number of packet switches. Packet switches in the network are called “nodes” 202-1, 202-2, 202-3, . . . , of the network. All nodes are directly or indirectly interconnected to one another through “inter-node links” 203-1, 203-2, 203-3, . . . , which are communication channels.
Besides inter-node links, there can be other types of communication channels connected to a packet switch, e.g., channels linking the switching fabric to packet generators/receivers. All these communication channels are hosted by line cards on the packet switch. Those line cards hosting inter-node links 203-1, 203-2, 203-3, . . . , will be called “inter-node line cards”. The remaining line cards hosting 204-1, 204-2, 204-3, . . . , host other communication channels.
When a packet switching network, including the nodes and the inter-node links, is viewed as a large packet switching system, it is functionally equivalent to a large packet switch with a large throughput but enjoys two major advantages over the single-switch equivalent. First, a single packet switch with such a large throughput may not be economically feasible. Second, because of the geographic distribution of the nodes in the network, the average distance from a user to the network is shorter than that to the single packet switch. On the other hand, the deployment of a packet switching network instead of a single packet switch incurs the cost of inter-node line cards. This cost is a substantial overhead because, typically, the bulk of the cost of a packet switch is in the line cards.
A packet enters a packet switching network at its “ingress node and exits from its “egress node”. When the ingress node is not the same as the egress node, there may also possibly intermediate nodes on the packet route. Moreover, there may be different routes available between the ingress node and the egress node. A “routing scheme” refers to a method for selecting and setting up a route. The existing variety of routing schemes can be classified into the following two categories. Because of the 20 overwhelming application in IP (Internet protocol) networks, the routing information carried by a packet header will be abbreviated as “the IP address”.
Hop-by-hop Routine.
Each node independently chooses the next hop for an incoming packet. That is, each node analyzes “the IP address”, the QoS information, etc. in the packet header and then, based on a routing algorithm/policy or a routing table, chooses a next node for the packet route. In fact, this has been the usual connectionless mode in existing IP networks. The packet-forwarding table in the input module of the line card translates “the IP address” into the output address of the switching-fabric that leads to the next node on the packet route.
Source Routing.
A packet is forced to follow a particular path through the network, which is set at the ingress node of the packet. Thus the input module of the ingress node translates “the IP address” into a fixed route encoded in the form of a sequence of “next-node identifiers” and affixes the sequence in front of the packet. The input module of every node on the packet route performs protocol processing and peels off the leading next-node identifier in the sequence and uses it as a substitute for “the IP address” in the switching control. Since the next-node identifier is much simpler than “the IP address”, the packet-forwarding table for the translation from the next-node identifier is much smaller than that for the translation from “the IP address”. Reducing the size of the packet-forwarding table also reduces the space-and time-complexities of the operation. The input module of an inter-node line card needs only perform this reduced operation, and hence its cost can be lower than a regular input module.
As mentioned in the above, there are advantages in a packet switching network over a single large packet switch but there is also the disadvantage in the cost of inter-node line cards. A source-routing scheme over a packet switching network alleviates this disadvantage by somewhat reducing the cost of the input module of internode line cards. However, source coding incurs the overhead in packet formatting by carrying the sequence of next-node identifiers, which encode the whole packet route through the network.
It would be desirable if the cost of inter-node line cards can be further reduced or even eliminated altogether.